package com.cnaaa.xinqiao.service;

import java.util.Date;
import java.util.Map;

/**
 * 2018/10/22 Create by 郭文梁
 * ChartsService
 * 报表分析相关业务
 *
 * @author 郭文梁
 * @date 2018/10/22
 */
public interface ChartsService {
    /**
     * 获取各区分数
     *
     * @return {分区：分数}
     */
    Map<String, Integer> getDistrictScore();

    /**
     * 获取日访问量
     *
     * @param date 日期
     * @return 访问量
     */
    Integer accessAmount(Date date);

    /**
     * 获取总分
     *
     * @return 总分
     */
    Integer totalScore();

    /**
     * 获取总销售积分
     *
     * @return 总销售积分
     */
    Integer totalSalesScore();

    /**
     * 获取总消费次数
     *
     * @return 总消费次数
     */
    Integer totalConsumptionCount();

    /**
     * 概览数据
     *
     * @param date 日期
     * @return 数据
     */
    Map<String, Object> overView(Date date);

    /**
     * 获取各区人数
     *
     * @return {区：人数}
     */
    Map<String, Integer> districtPeopleCount();

    /**
     * 获取月销售额
     *
     * @param year 年
     * @return {月份：销售额}
     */
    Map<Integer, Integer> salesVolume(Integer year);

    /**
     * 月消费次数
     *
     * @param year 年
     * @return {月份：消费次数}
     */
    Map<Integer, Integer> salesCount(Integer year);

    /**
     * 获取各区每月分值增长量
     *
     * @param year 年份
     * @return <pre><code>{
     *     区：{
     *         月：增张量
     *     }
     * }
     * </code>
     * </pre>
     */
    Map<String, Map<Integer, Integer>> scoreIncrement(Integer year);

    /**
     * 获取各区分数在总分中的占比
     *
     * @return <pre>
     *     <code>
     * {
     *     区：{
     *         ratio:占比,
     *         score:分数
     *     }
     * }
     *     </code>
     * </pre>
     */
    Map<String, Map<String, Object>> scoreDistribution();
}
